package com.tyam.validador;



import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.InvalidValue;


public class ValidacaoHibernate implements Validar {

	private ClassValidator<Object> classValidacao;
    private InvalidValue[] msgValidacao;   
    private boolean ok = false;  		
   
	public ValidacaoHibernate(Object obj) {
		validar(obj);
		
	}

	public ValidacaoHibernate() {
		
	}

    public InvalidValue[] valida(Object obj) {   
    	this.msgValidacao = classValidacao.getInvalidValues(obj);   
        ok = this.msgValidacao.length == 0 ? true : false;   
        return this.msgValidacao;   
    }   
  
    public String[] getMensagensValidacao() {   

    	String[] msg = new String[msgValidacao.length];
    	
    	for (int i = 0; i < msgValidacao.length; i++) {
			//msg[i] = msgValidacao[i].getPropertyName()+" "+msgValidacao[i].getMessage();
			msg[i] = msgValidacao[i].getMessage();
		}
    	
        return  msg;
    }   
       
    public boolean isOk() {   
        return ok;   
    }

	@SuppressWarnings("unchecked")
	@Override
	public void validar(Object obj) {
		classValidacao =  new ClassValidator(obj.getClass());   
		valida(obj); 
	}
}
